home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / ms_dos / lib / happyps3 / happyps3.doc < prev    next >
Encoding:
Text File  |  1995-02-07  |  4.8 KB  |  118 lines

  1. =======================================
  2. 【作 品 名】 HAPPy Pascal サンプルプログラム集3
  3. 【作    者】 浅野比富美 (NIFTY-Serve GFA01713)
  4. 【動作環境】 HAPPyでコンパイル・実行
  5. =======================================
  6.  
  7. ☆ はじめに
  8.  
  9.    標準Pascal処理系HAPPy上で動くPascalのサンプルプログラム
  10.   の第3集です。以下の3種類のプログラムを収録しました。
  11.     ・ 三目並べ           (3MOKU  .PAS)
  12.     ・ 電卓              (CALC   .PAS)
  13.     ・ Pascalステップカウントツール  (SCNT   .PAS)
  14.  
  15.    各ソースファイルをpcコマンドでコンパイルし、piコマンドで実行させてみ
  16.   てください。
  17.    例えば、電卓を動かしたい時は
  18.     pc calc
  19.   でコンパイル後
  20.       pi calc
  21.   でインタプリタを起動します(Version 0.3 の場合)。
  22.  
  23.  
  24. ☆ 三目並べ
  25.  
  26.   小学生のころ、棒切れで地面に井げたの線を引いて、○と×を3つずつ並べる遊び
  27.  を友達としませんでしたか。教室でノートの端にもたくさん書いて遊んだような記憶
  28.  があります。
  29.   小学生には適当な、そして大人には全然つまらない○×を3つ並べる遊び、三目並
  30.  べをプログラムしてみました。
  31.   先攻(○)、後攻(×)が選べるようになっています。
  32.   ○×を入れる場所は、1~9の数字で選びます。この時、0を入力すると、どこに
  33.  置いたら良いか、コンピュータがアドバイスしてくれます。
  34.   9手目は無意味なので、このプログラムでは9手目を行いません。
  35.   なお、三目並べは、理論上双方が最善を尽くせば必ず引き分けになるゲームです。
  36.  コンピュータは最善を尽くしますから、絶対に負けません。あなたがうかうかしてい
  37.  ると、あなたは負けてしまいます。だからゲームとしてはつまらないでしょう。
  38.   しかし、三目並べは思考対戦型ゲームの基礎なので、プログラムを勉強している方
  39.  には、アルゴリズム等、参考になるのではないかと思っています。
  40.  
  41.  
  42. ☆ 電卓
  43.  
  44.    括弧記法ができる四則演算電卓です。
  45.    この電卓には、2つの特徴があります。1つは、整数演算オーバーフロー時に、
  46.   以後の演算を実数演算とする機能、もう1つは、直前の演算結果をXという変数で
  47.   参照できる機能です。
  48.    99999999を越える数や演算結果、及び少数点のつく数は、実数として扱
  49.   い、実数演算を行います。式の中に、1つでも実数があると、その式の演算結果は
  50.   実数となります。ただし、除算は、すべて実数演算です。
  51.    実数演算の答えは、Pascalの実数のwriteの形式となります。つまり
  52.   正規化された浮動小数点形式なので、見慣れないうちは、わかりにくいかもしれま
  53.   せん。
  54.    電卓を起動すると、# というプロンプトが現れます。この状態で数式を入力し
  55.   ます。数式の最後は=で終わってください(ちょっと面倒ですね)。そして改行キ
  56.   ーを押すと、答えが出力され、また#の状態に戻ります。
  57.    直前の式の演算結果は、Xまたはxという変数で参照できます。この機能はとて
  58.   も便利ですよ。
  59.    電卓をやめたい時は、#の状態で、Qまたはqを入力してください。
  60.  
  61.   使用例を以下に示します。
  62.  
  63.       H:\> pi calc
  64.       # 5+3=
  65.                  8
  66.       # (1+10)*-5=
  67.                -55
  68.       # 3*x=
  69.               -165
  70.       # -x/5=
  71.       -3.300000E+001
  72.       # (1+10)*5.0=
  73.        5.500000E+001
  74.       # 1000*1001*1002*1003=
  75.        1.006011E+012
  76.       # 2/1=
  77.        1.000000E+000
  78.       # q
  79.  
  80.  
  81. ☆ Pascalステップカウントツール
  82.  
  83.    Pascalソースの行数とステップ数を数えるツールです。
  84.    ステップ数の正式な定義がどうなっているのか、私は知りませんが、ここではご
  85.   く簡単な方法で数えています。すなわち、「コメント、空白、水平タブのみからな
  86.   る行を除いた行数」をステップ数だ、と定義します。
  87.    例えば、次のようなプログラムでは、行数は7、ステップ数は4となります。
  88.     (***** SAMPLE ****)
  89.     program sample(output) ; (*1*)
  90.     begin           (*2*)
  91.      (* 出力 *)
  92.     write('step count')     (*3*)
  93.  
  94.     end.           (*4*)
  95.  
  96.    一般的に、それ自体何の動作も起こさないbeginやendは、独立した1行
  97.   に書かれます。それらも1ステップとして数えることになります。しかし人によっ
  98.   てはbeginを1行単独に書かず、前の行につける場合があり、同じ動作をする
  99.   にもかかわらず、ステップ数が減ることになります。このあたりが、何をもってス
  100.   テップ数とするのか、議論の余地のあるところてす。
  101.  
  102.   なお、このプログラムは、Version 0.0~0.2では、in演算子のバグのため、正しく
  103.   動きません。Version 0.3以降で動かしてください。
  104.  
  105.  
  106. ☆ おわりに
  107.  
  108.    Pascalは、もともと教育用言語なので、これらサンプルプログラムについ
  109.   ては著作権を主張しません。PDSとします。したがって、どのように使ってもど
  110.   こに流布させても自由です。
  111.    HAPPyでは、大きなプログラムとか、グラフィックプログラムとか、マウス
  112.   を使うとか、そういう系統のプログラムは作れませんが、プログラミングの基礎を
  113.   勉強するためのちょっとしたプログラムなら充分作れます。HAPPyを通して、
  114.   Pascalプログラムに親しんでいただければ、幸いです。是非いろいろと挑戦
  115.   してみてください。
  116.  
  117.     浅野比富美 (NIFTY-Serve GFA01713)
  118.